package cn.gzsf.sboot09.mapper;


import cn.gzsf.sboot09.entity.Item;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository//加此注解的目的，仅仅是为了编写时，不报错
public interface ItemMapper {
    //在mapper接口中，增删改方法的返回值建议用int
    int insert(Item item);
    //根据id查询    arg1
    Item selectById(int id);
    //删除
    int deleteById(int id);
    //修改
    int update(Item item);
    //统计
    int count();
    //批量删除
    int deleteByIds1(int ... ids);
    //第二种批量删除
    int deleteByIds2(int[] ids);
    //第三种批量删除
    int deleteByIds3(List<Integer> ids);
    //动态修改，如果某个字段为空，则不要修改这个字段
    int dynamicUpdate(Item item);
    //动态查询
    //如果mybatis的Mapper接口中方法有两个以上的简单类型参数，
    // 需要使用@Param注解指定参数名称，否则会报找不到参数异常
    List<Item> dynamicSelect(
            @Param("minPrice") Double minPrice,
            @Param("maxPrice") Double maxPrice);

}
